// 用于处理身份验证相关操作的工具文件，主要负责管理前端应用中的认证令牌(Token)和刷新令牌(Refresh Token)
import Cookies from 'js-cookie'

// 定义存储token的键名
const TokenKey = 'Admin-Token'
const RefreshTokenKey = 'Admin-Refresh-Token'

// 获取token
export function getToken() {
  return Cookies.get(TokenKey)
}

// 设置token
export function setToken(token, expires) {
  // 如果有过期时间，计算过期时间点
  if (expires) {
    const expiresTime = new Date(new Date().getTime() + expires * 1000)
    return Cookies.set(TokenKey, token, { expires: expiresTime })
  }
  return Cookies.set(TokenKey, token)
}

// 移除token
export function removeToken() {
  return Cookies.remove(TokenKey)
}

// 获取refresh token
export function getRefreshToken() {
  return Cookies.get(RefreshTokenKey)
}

// 设置refresh token
export function setRefreshToken(token, expires) {
  if (expires) {
    const expiresTime = new Date(new Date().getTime() + expires * 1000)
    return Cookies.set(RefreshTokenKey, token, { expires: expiresTime })
  }
  return Cookies.set(RefreshTokenKey, token)
}

// 移除refresh token
export function removeRefreshToken() {
  return Cookies.remove(RefreshTokenKey)
}

// 移除所有token(注销时使用)
export function clearAuthTokens() {
  removeToken()
  removeRefreshToken()
}